using System;
using System.Collections.Generic;
using Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos;
using Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades;

namespace Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.ServiceImplementation.Translator
{
    /// <summary>
    /// Realiza traducao entre contrato "Versao" e entidade "Versao".
    /// </summary>
    public class TradutorVersao
    {
        /// <summary>
        /// Converte entidade "Versao" em contrato "Versao".
        /// </summary>
        public Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao Traduzir(Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao origem)
        {
            Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao destino = new Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao();
            destino.Codigo = origem.Codigo;
            destino.CodigoProduto = origem.CodigoProduto;
            destino.NumeroVersao = origem.NumeroVersao;
            destino.Observacao = origem.Observacao;
            return destino;
        }

        /// <summary>
        /// Converte entidade "Versao" em contrato "Versao".
        /// </summary>
        public List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao> Traduzir(List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao> origem)
        {
            List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao> destino = new List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao>();
            for (int idx = 0; idx < origem.Count; idx++)
            {
                destino.Add(Traduzir(origem[idx]));
            }

            return destino;
        }

        /// <summary>
        /// Converte contrato "Versao" em entidade "Versao".
        /// </summary>
        public Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao Traduzir(Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao origem)
        {
            Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao destino = new Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao();
            destino.Codigo = origem.Codigo;
            destino.CodigoProduto = origem.CodigoProduto;
            destino.NumeroVersao = origem.NumeroVersao;
            destino.Observacao = origem.Observacao;
            return destino;
        }

        /// <summary>
        /// Converte contrato "Versao" em entidade "Versao".
        /// </summary>
        public List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao> Traduzir(List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao> origem)
        {
            List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao> destino = new List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Entidades.Versao>();
            for (int idx = 0; idx < origem.Count; idx++)
            {
                destino.Add(Traduzir(origem[idx]));
            }

            return destino;
        }
    }
}

